# -*- coding: utf-8 -*-
"""
@Time    : 2024/6/28 18:39 
@Author  : ZhangShenao 
@File    : slice.py 
@Desc    : 字符串的索引、切片相关操作
"""

# 索引可以为负数,表示按逆序从序列中取元素,最后一个元素的索引为-1
chars = 'abcdefg'
print(f'chars[-1] = {chars[-1]}')  # g
print(f'chars[-2] = {chars[-2]}')  # f

# 可以通过[start:end]进行切片操作,取值范围是[start,end),即左闭右开区间
s1 = '01234567'
print(f's1[1:4] = {s1[1:4]}')  # 123
# 如果省略start,则start默认为1
print(f's1[:5] = {s1[:5]}')  # 01234
# 如果省略end,则end默认为字符串长度
print(f's1[3:] = {s1[3:]}')  # 34567
# 如果start和end都省略,则表示整个字符串
print(f's1[:] = {s1[:]}')  # 01234567
# start和end都可以为负数,表示从末尾开始取值
print(f's1[-3:-1] = {s1[-3:-1]}')  # 56
print(f's1[1:-2] = {s1[1:-2]}')  # 12345
# 可以指定步长,即[start:end:step]
print(f's1[::2] = {s1[::2]}')  # 0246
# 步长也可以为负数,经常通过下面的方式反转字符串
print(f's1[::-1] = {s1[::-1]}')  # 76543210
